package com.ehome.poct.base.dao.device.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ehome.mybatisplus.autoconfigure.BaseEntityOld;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 设备表
 *
 * @author muqiu
 * @Date 2022-02-24 09:23
 */
@Data
@TableName("test_device")
@NoArgsConstructor
public class TestDeviceDO extends BaseEntityOld<TestDeviceDO> {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    public TestDeviceDO(String sno, String version, Integer deviceType, Integer status, Long baseUrlId, Long baseQulityUrlId, Long testDeviceId) {
        this.sno = sno;
        this.version = version;
        this.deviceType = deviceType;
        this.status = status;
        this.baseUrlId = baseUrlId;
        this.baseQulityUrlId = baseQulityUrlId;
        this.testDeviceId = testDeviceId;
    }

    /**
     * 主键ID 唯一性
     */
    @TableId
    private Long testDeviceId;
    /**
     * 设备编号
     */
    @TableField(value = "sno")
    private String sno;
    /**
     * 质控状态 0 未质控  1 已质控
     */
    @TableField(value = "quality_control_status")
    private Integer qualityControlStatus;
    /**
     * 质控时间
     */
    @TableField(value = "quality_control_time")
    private LocalDateTime qualityControlTime;
    /**
     * 数据入库状态  0 未入库  1 已入库
     */
    @TableField(value = "data_warehousing_status")
    private Integer dataWarehousingStatus;
    /**
     * 数据入库时间
     */
    @TableField(value = "data_warehousing_time")
    private LocalDateTime dataWarehousingTime;
    /**
     * 数据入库人
     */
    @TableField(value = "data_warehousing_by")
    private Long dataWarehousingBy;
    /**
     * 入仓状态
     */
    @TableField(value = "warehousing_status")
    private Integer warehousingStatus;
    /**
     * 入仓类型 0 新增入库 1 返修入库
     */
    @TableField(value = "warehousing_type")
    private Integer warehousingType;
    /**
     * 入仓人
     */
    @TableField(value = "warehouse_by")
    private Long warehouseBy;
    /**
     * 入仓时间
     */
    @TableField(value = "warehousing_time")
    private LocalDateTime warehousingTime;
    /**
     * 出仓状态
     */
    @TableField(value = "out_warehouse_status")
    private Integer outWarehouseStatus;
    /**
     * 出仓人
     */
    @TableField(value = "out_warehouse_by")
    private Long outWarehouseBy;
    /**
     * 出仓时间
     */
    @TableField(value = "out_warehouse_time")
    private LocalDateTime outWarehouseTime;
    /**
     * 链路追踪id
     */
    @TableField(value = "trace_id")
    private String traceId;

    /**
     * 当前绑定的诊所id
     */
    @TableField(value = "term_clinic_id")
    private Long termClinicId;
    /**
     * 最新的绑定时间
     */
    @TableField(value = "bind_time")
    private LocalDateTime bindTime;
    /**
     * 设备类型（1：金标仪。2：血常规）
     */
    @TableField(value = "device_type")
    private Integer deviceType;
    /**
     * 工厂代码（那个代工厂生产的）
     */
    @TableField(value = "factory")
    private String factory;
    /**
     * 生产批次号
     */
    @TableField(value = "batch_num")
    private String batchNum;
    /**
     * 应用类型
     * 1：市场普通版本
     * 2：赠送版本
     * 3：合作版本
     */
    @TableField(value = "use_type")
    private Integer useType;
    /**
     * 远程下线的操作密码（防止误操作）
     */
    @TableField(value = "password")
    private String password;
    /**
     * 设备当前的状态  （0出厂，1绑定机器中， 5已解绑， 10返修，44不可用状态可当远程下机功能使用
     * 设备当前的状态  （0出厂，1绑定机器中， 5已解绑， 10返修，44不可用状态可当远程下机功能使用 , 2组装中，3.组装成功  4.质控完成  ）
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 外观图片
     */
    @TableField(value = "facade_img")
    private String facadeImg;
    /**
     * 后台API url ID
     */
    @TableField(value = "base_url_id")
    private Long baseUrlId;
    /**
     * 图片地址url ID
     */
    @TableField(value = "base_img_url_id")
    private Long baseImgUrlId;
    /**
     * 微信报表之类相关的url ID
     */
    @TableField(value = "base_wechat_url_id")
    private Long baseWechatUrlId;
    /**
     * 算法url ID
     */
    @TableField(value = "base_algorithm_url_id")
    private Long baseAlgorithmUrlId;
    /**
     * 质控url ID
     */
    @TableField(value = "base_qulity_url_id")
    private Long baseQulityUrlId;
    /**
     * 备注
     */
    @TableField(value = "remarks")
    private String remarks;
    /**
     * 硬件类型   0公司持有。1客户持有(类似苏中）。2被赠送者持有（张家界一些诊所）。3学术研究机构持有（湘雅医院）
     */
    @TableField(value = "owner_type")
    private Integer ownerType;
    /**
     * 机器版本
     */
    @TableField(value = "version")
    private String version;
    /**
     * SoftwareVersion
     */
    @TableField(value = "software_version")
    private String softwareVersion;

    @TableField("production_date")
    private LocalDate productionDate;

    @TableField("valid_date")
    private LocalDate validDate;
    
    @TableField("expiration_date")
    private Integer expirationDate;
    
    @TableField("time_unit")
    private Integer timeUnit;
    
    @TableField("algorithm_status")
    private Integer algorithmStatus;
}
